#ifndef GRAPHICS_H
#define GRAPHICS_H

#include "Object.h"

class GameWidget;

  // parent class for graphics
class Graphics
{
    public:
        Graphics()
            :zoomToPlayer(true)
        {}

          // not used anymore, switched to " paint all at once" style
        virtual void paint( int, int, Object* ) {}
          // paints everything, now used
        virtual void paintAll() {}
          // saves game screen
        virtual void saveScreen() {}
          // enters hallucinating mode( inverts pixels )
        virtual void setHalluMode( bool ) {}
        virtual bool getHalluMode() { return false; }

          // zooming functions
        virtual void zoomIn(   int ) {}
        virtual void zoomOut(  int ) {}
        virtual void zoomInX(  int ) {}
        virtual void zoomInY(  int ) {}
        virtual void zoomOutX( int ) {}
        virtual void zoomOutY( int ) {}

        virtual void moveZoomCenterUp( int )    {}
        virtual void moveZoomCenterDown( int )  {}
        virtual void moveZoomCenterRight( int ) {}
        virtual void moveZoomCenterLeft( int )  {}

        bool getZoomToPlayer() const { return zoomToPlayer; }
        void setZoomToPlayer( bool i ) { zoomToPlayer = i; }

        virtual GameWidget* playerInput() { return 0; }

        virtual void deleteResourses( int, int ) {}
        virtual ~Graphics(){}
    protected:
    private:
        bool zoomToPlayer;
};

#endif // GRAPHICS_H
